﻿// Copyright (c)  MOKEYISH. All rights reserved.
// Licensed under the MIT License, See License.txt in the project root for license information.

namespace NSQL.Expressions.Functions
{
    public class TrimFunction : BaseExpression, ITrimFunction
    {
        public IStringExpression Expr { get; set; }
        public IConstantStringExpression TrimExpr { get; set; }
        public TrimType Type { get; set; }

        public TrimFunction(IValueExpression expression, TrimType type = TrimType.Both)
        {
            Expr = (IStringExpression) expression;
            Type = type;
        }
        public TrimFunction(IValueExpression expression, IConstantStringExpression trim , TrimType type = TrimType.Both)
        {
            Expr = (IStringExpression) expression;
            TrimExpr = trim;
            Type = type;
        }

        public override T Accept<T>(IExpressionVisitor<T> visitor) => visitor.Visit(this);
    }
}